/**
 * 
 */
package servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import metier.Bean;
import metier.Evenement;

/**
 * @author hozakan
 * Donne le dernier évènement à pronostiquer
 */
public class GetLastEvent extends BaseServlet {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -1903229751709630132L;
	private static final Logger logger = Logger.getLogger(GetLastEvent.class);

	/* (non-Javadoc)
	 * @see servlets.BaseServlet#specificDoGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	@Override
	protected void specificDoGet(HttpServletRequest request, HttpServletResponse response) {
			if(logger.isDebugEnabled()) {
				logger.debug("Récupération du dernier pronostique");
			}
			Bean sondage = tampon();
			if(logger.isDebugEnabled()) {
				logger.debug("Récupération du dernier pronostique");
			}
			String html = toStringFlow(sondage);
			sendText(response, html);
		}

		/**
		 * Transforme 
		 * @param pronostic
		 * @return
		 */
		private String toStringFlow(Bean evenement) {
			StringBuffer sb = new StringBuffer(); //Utilisation d'un StringBuffer lputôt qu'un StringBuilder car le Servlet peut être appelé plusieurs fois en même temps.
			//sb.append("<form name=\"pronosticForm\" id=\"pronosticForm\" action=\"#\">");
			//sb.append("<input type=\"hidden\" name=\"eventId\" value="+((Evenement)evenement).getId()+"\" />");
			sb.append("--E--");
			sb.append(((Evenement)evenement).getCommentaire());
			sb.append("--ID--");
			sb.append(evenement.getId());
			sb.append("--D--");
			((Evenement)evenement).getDateEvenement();
			sb.append("--N--");
			((Evenement)evenement).getNomChampionnat();
			sb.append("--L--");
			((Evenement)evenement).getLieu();
			/*for (String str : ((Pronostic)pronostic).getPossibleResponses()) {
				//sb.append("<input type=\"radio\" name=\"response\" value=\""+str+"\"");
				sb.append("--R--");
				sb.append(str);
			}*/
			//sb.append("</form>");
			sb.append("--END--");
			return sb.toString();
		}
		
		protected void sendText(HttpServletResponse response, String text) {
		    response.setContentType("text/html");
		    response.setCharacterEncoding("UTF-8");
		    ServletOutputStream out;
			try {
				out = response.getOutputStream();
			    out.print(text);
			    out.flush();
			    out.close();
				System.out.println("texte envoyé");
			} catch (IOException e) {
				System.out.println("Erreur d'envoi");
				logger.error("Erreur d'e/s lors de la transmission du message");
			}
		  }

		/**
		 * Méthode tampon de création d'un sondage.
		 * @return un pronostique oO
		 */
		private Bean tampon() {
			Bean evenement = new Evenement();
			((Evenement)evenement).setId(1);
			//((Pronostic)sondage).setTitle("Qu'en pensez-vous ?");
			List<String> list = new ArrayList<String>();
			list.add("C'est bien!");
			list.add("ça vaut le coup d'oeil");
			list.add("Mais c'est quoi ça?!");
			list.add("La réponse D");
			//((Pronostic)sondage).setPossibleResponses(list);
			return evenement;
		}

		@Override
		protected void specificDoPost(HttpServletRequest request,
				HttpServletResponse response) {
			// TODO Auto-generated method stub
			
		}

}
